In a variety of consumer electronics and computers, solid state drives or storage devices incorporating non-volatile memories (NVMs) are frequently replacing or supplementing conventional rotating hard disk drives for mass storage. These non-volatile memories may include one or more flash memory devices that may be logically divided into blocks, and each of the blocks may be further logically divided into addressable pages.
Solid state storage devices may use NAND flash memory cells for its high density and low cost per cell relative to other generally available non-volatile memory technology. Each NAND memory cell can be programmed to a certain program state or level. A single level cell (SLC) may be programmed to two states, for example, states 0 and 1. Some NAND flash memory cells may be programmed to more than two levels. This type of flash memory cell is generally referred to as multi level cell (MLC). Increasing the number of programmable states or levels allows a cell to store more bits per cell. For example, a cell can store 2 bits using four levels, 3 bits using eight levels, and 4 bits using sixteen levels.